Component({
  /**
   * 组件的属性列表
   */
  behaviors: [],
  externalClasses: ['w-bg-class', 'w-panel-class', 'w-class'],
  properties: {
    zIndex: {
      type: Number,
      value: 777
    },
    // 动画效果的显示和隐藏
    animation: {
      type: Boolean,
      value: true
    },
    // slot的位置
    direction: {
      type: String,
      value: "center",
      options: ['top', 'right', 'left', 'bottom', 'center']
    },
    // 锁定
    locked: {
      type: Boolean,
      value: false
    },

  },
  /**
   * 组件的初始数据
   */
  data: {
    status: 'hide',
    show: false

  },
  observers: {
    show(show) {
      if (show) {
        this.setData({
          status: 'show'
        });
      }
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //当点击背景时触发的事件	
    onPopupTap() {
      if (this.data.locked !== true) {
        this._hidePopup();
      }


    },
    _hidePopup() {
      if (this.data.animation) {
        this.setData({
          status: 'hide'
        });
        // 延迟 300ms 等动画结束再去掉节点
        setTimeout(() => {
          this.setData({
            show: false
          });
        }, 300);
      } else {
        this.setData({
          show: false,
          status: 'hide'
        });
      }
    },
    /**
     * 显示 Popup
     */
    onShowPopup() {
      this.setData({
        show: true
      });
    },

    /**
     * 隐藏 Popup
     * 会忽略 locked 属性
     */
    onHidePopup() {
      this._hidePopup();
    }
  }
});